草庐IT

C++ typedef 结构与类

全部标签

c# - 为什么 String 是 Value 类型,虽然它是一个类而不是一个结构?

举个例子:stringme="Ibraheem";stringcopy=me;me="Empty";Console.WriteLine(me);Console.WriteLine(copy);输出是:EmptyIbraheem因为它是类类型(即不是结构),Stringcopy也应该包含Empty因为C#中的=operator分配引用对象而不是对象本身(如在C++中)? 最佳答案 虽然已接受的答案解决了这个问题(和其他一些人一样),但我想给出一个专门针对您实际上要问的问题的答案,这是关于变量赋值的语义。C#中的变量只是为保存单个值而预

c# - 为什么 C# 结构不能返回对其成员字段的引用?

structFoo{inti;publicrefintI=>refi;}此代码引发编译错误CS8170,但如果Foo是一个类,则不会。为什么结构不能返回成员作为引用? 最佳答案 我想我找到了解决方法:classProgram{staticvoidMain(string[]args){Footemp=newFoo(99);Console.WriteLine($"{Marshal.ReadInt32(temp.I)}");Console.ReadLine();}}structFoo{inti;publicIntPtrI;publicFo

c# - api-independent 顶点处理的好的代码结构是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.3年前关闭。Improvethisquestion目前正在使用C#开发3D媒体引擎,我遇到了一个小难题。我已经弄清楚了我的渲染循环,我得到了一个很棒的插件架构和内容管理系统,甚至一个Material管道都已经计划好了。然后引擎计划使用DirectX和OpenGL(通过“渲染器”插件),以及两个API的可编程管道。无论如何,在本周初,我开始研究用于处理顶点的引擎抽象层(我已经害怕这个好几个星期了)。正如你们中的一些人所知,图形API之间

c# - 在树结构中使用数据模型实现存储库模式

我在实现存储库接口(interface)的两个不同模型中有两个数据集合。其中之一是一个平面列表,非常适合Repository模型。另一个数据模型采用树结构格式,我构建的存储库接口(interface)的实现看起来非常可疑。我可以尝试扁平化第二个数据模型并仅使用对父级的引用,但目前该应用程序从能够将数据作为树结构获取有一些很大的好处。我想知道是否有人有任何使用树结构数据模型实现存储库模式的经验。目前在我的Get(Funcpredicate)方法我使用递归方法展平列表并使用LINQ查询返回对象,但我觉得这种实现有点太昂贵了。任何关于如何实现这一点的提示都将不胜感激。这里是getbypred

c# - 为什么对于这种特定情况,结构比类快得多?

我有三个案例来测试类、具有继承的类和结构的相对性能。这些将用于紧密循环,因此性能很重要。点积被用作2D和3D几何中许多算法的一部分,我已经在真实代码上运行了分析器。以下测试表明了我所见过的现实世界中的性能问题。循环100000000次点积的结果ControlA208ms(classwithinheritence)ControlB201ms(classwithnoinheritence)ControlC85ms(struct)测试在没有调试和优化的情况下运行。我的问题是,在这种情况下,类是什么导致它们如此缓慢?我假设JIT仍然能够内联所有调用、类或结构,因此实际上结果应该是相同的。请注意

c# - 在 IDisposable 类层次结构中正确处理 ObjectDisposedException

关闭。这个问题需要更多focused.它目前不接受答案。想改善这个问题吗?更新问题,使其仅关注一个问题editingthispost.3年前关闭。Improvethisquestion正确实现IDisposable时,大多数实现,包括框架指南,都建议包含privatebooldisposed;成员,以便安全地允许多次调用Dispose(),Dispose(bool)以及扔ObjectDisposedException在适当的时候。这适用于单个类。但是,当您从一次性资源进行子类化,并且子类包含它自己的native资源和独特的方法时,事情就会变得有点棘手。大多数示例展示了如何覆盖Dipos

c# - 托管结构的大小

.NET4.0Framework为readingandwritingmemorymappedfiles引入了类.这些类以reading的方法为中心和writingstructures.这些没有编码,而是以它们在托管内存中的布局形式从文件复制到文件。假设我想使用这些方法将两个结构顺序写入内存映射文件:[StructLayout(LayoutKind.Sequential,Pack=1)]structFoo{publiccharC;publicboolB;}[StructLayout(LayoutKind.Sequential,Pack=1)]structBar{}staticvoidWr

c# - 常见数据结构的引用单元测试?

我正在编写一个类库,其中包含常见数据结构(列表、集合、字典...)的几个专门实现。我发现自己总是一遍又一遍地编写相同的单元测试,而且我不确定我没有忘记测试一些重要的场景。由于我的类都实现了标准接口(interface)(IList、IDictionary等),我想知道是否存在这些接口(interface)的所有实现都应该通过的某种“引用”单元测试。当然,我还需要测试我的类的特定方面,但至少我会更有信心,我的标准接口(interface)实现没有任何问题。 最佳答案 你可以看看MonounittestsonGithub-那里至少有Di

c# - 如何在单元测试期间设置数据结构的内部状态?

我正在用C#编写一个数据结构(使用fibonacciheap的优先级队列),我正在尝试将其用作TDD的学习经验,我对此还很陌生。我知道每个测试应该只测试类的一个部分,这样一个单元的失败就不会把我与多个测试失败混淆,但我不确定当数据结构的状态时如何做到这一点对考试很重要。例如,privatePriorityQueuequeue;[SetUp]publicvoidInitialize(){this.queue=newPriorityQueue();}[Test]publicvoidPeekShouldReturnMinimumItem(){this.queue.Enqueue(2);thi

C# Hashtable 内部数据结构

全部-问我最近遇到的一个具体问题,令人惊讶的是没有找到任何令人信服的答案。C#Hashtable(和内部使用Hashtable的字典)利用的内部支持数据结构是什么所以本质上-什么样的桶是存储在-ArrayList,LinkedList(我知道这不是这里的答案),树结构等中的键值对不寻找冲突策略等-只需计算哈希码-Hashtable在内部使用什么数据结构来存储该值?任何解释或文章指针都会很有帮助。 最佳答案 字典内部数据结构有一个很好的解释:https://www.simple-talk.com/blogs/2011/09/16/th